From bd19080b5201a44d2ff3a1c9eabfbf36e68e7c0e Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Thu, 4 Nov 2010 16:29:47 +0000 Subject: [PATCH] x86: Do not expose XSAVE/AVX to guests. Signed-off-by: Keir Fraser --- tools/libxc/xc_cpuid_x86.c | 4 ++-- xen/arch/x86/traps.c | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/tools/libxc/xc_cpuid_x86.c b/tools/libxc/xc_cpuid_x86.c index de68f263c6..e517eb7733 100644 --- a/tools/libxc/xc_cpuid_x86.c +++ b/tools/libxc/xc_cpuid_x86.c @@ -195,8 +195,7 @@ static void xc_cpuid_hvm_policy( bitmaskof(X86_FEATURE_SSE4_1) | bitmaskof(X86_FEATURE_SSE4_2) | bitmaskof(X86_FEATURE_POPCNT) | - bitmaskof(X86_FEATURE_AES) | - bitmaskof(X86_FEATURE_AVX)); + bitmaskof(X86_FEATURE_AES)); regs[2] |= bitmaskof(X86_FEATURE_HYPERVISOR); @@ -324,6 +323,7 @@ static void xc_cpuid_pv_policy( clear_bit(X86_FEATURE_XTPR, regs[2]); clear_bit(X86_FEATURE_PDCM, regs[2]); clear_bit(X86_FEATURE_DCA, regs[2]); + clear_bit(X86_FEATURE_XSAVE, regs[2]); set_bit(X86_FEATURE_HYPERVISOR, regs[2]); break; case 0x80000001: diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c index f91e3c8ae3..69bbe43cbb 100644 --- a/xen/arch/x86/traps.c +++ b/xen/arch/x86/traps.c @@ -795,6 +795,7 @@ static void pv_cpuid(struct cpu_user_regs *regs) __clear_bit(X86_FEATURE_XTPR % 32, &c); __clear_bit(X86_FEATURE_PDCM % 32, &c); __clear_bit(X86_FEATURE_DCA % 32, &c); + __clear_bit(X86_FEATURE_XSAVE % 32, &c); if ( !cpu_has_apic ) __clear_bit(X86_FEATURE_X2APIC % 32, &c); __set_bit(X86_FEATURE_HYPERVISOR % 32, &c); -- 2.30.2